10 REM SAMPLE UTILITY PROGRAMS 20 REM ERR-READ DISK ERROR CHANNEL 30 CLOSE100:OPEN100,8,15 40 INPUT#100,N,ER$,T,S 50 PRINTN;ER$;T;S:CLOSE100:END 60 REM HEX-CONVERT A NUMBER FROM DECIMAL TO HEXADECIMAL 70 PRINT"CONVERT TO HEX" 80 D=0:INPUT"DECIMAL";D:IFD=0THENEND 90 H$="":D=D/4096:FORI=1TO4:T%=D:H$=H$+CHR$(48+T%-(T%>9)*7) 100 D=16*(D-T%):NEXT:PRINT"HEX "H$:GOTO80 110 REM DEC-CONVERT FROM HEXADECIMAL TO DECIMAL 120 PRINT"CONVERT TO DECIMAL" 130 H$="":INPUT"HEX";H$:IFH$=""THENEND 140 D=0:FORI=1TO4:T%=ASC(H$):T%=T%-48+(T%>64)*7 150 H$=MID$(H$,2):D=16*D+T%:NEXT:PRINT"DECIMAL"D:GOTO130 160 REM INIT-INITIALIZE DISK DRIVE 170 CLOSE100:OPEN100,8,15,"I":INPUT#100,N,ER$,T,S 180 IFN<>0THEN50 190 PRINT"DRIVE INITIALIZED":END 200 REM SCRATCH-DELETE A FILE FROM DISK 210 F$="":INPUT"FILE";F$:IFF$=""THENEND 220 PRINT"SCRATCH "F$:INPUT"SURE (Y/N)";R$:IFR$<>"Y"THENEND 230 CLOSE100:OPEN100,8,15,"S0:"+F$:GOTO40 240 REM RENAME-RENAME A FILE 250 F1$="":INPUT"OLD NAME";F1$:IFF1$=""THENEND 260 F2$="":INPUT"NEW NAME";F2$:IFF2$=""THENEND 270 CLOSE100:OPEN100,8,15,"R0:"+F2$+"="+F1$:GOTO40 280 REM HEADER-FORMAT A NEW DISK 290 F1$="":INPUT"DISK NAME";F1$:IFF1$=""ORLEN(F1$)>16THEN290 300 F2$="":INPUT"2 CHAR ID";F2$:IFLEN(F2$)<>2THEN300 310 PRINT"THIS WILL ERASE DISK":INPUT"GO AHEAD (Y/N)";R$:IFR$<>"Y"THENEND 320 CLOSE100:OPEN100,8,15,"N0:"+F1$+","+F2$:CLOSE100:GOTO20 330 REM DIR-PRINT DISK DIRECTORY 340 Z$=CHR$(0):CLOSE100:CLOSE101:OPEN100,8,15:OPEN101,8,0,"$0" 350 INPUT#100,N,ER$,T,S:IFN<>0THEN50 360 GET#101,A$:IFA$<>""THEN360 370 PRINTA$;:GOTO460 380 GETC$:IFC$=""THEN420 390 IFC$<>" "THEN510 400 GETC$:IFC$=""THEN400 410 IFC$<>" "THEN510 420 GET#101,A$:S=ST:A=ASC(A$+Z$) 430 GET#101,B$:S=ST:B=ASC(B$+Z$) 440 IFSTHEN510 450 IFA=1ANDB=1THENGOSUB480 460 GET#101,A$:IFA$=""THENPRINT:GOTO380 470 PRINTA$;:GOTO460 480 GET#101,A$:S=ST:A=ASC(A$+Z$) 490 GET#101,B$:S=ST:B=ASC(B$+Z$) 500 N=B*256+A:PRINTN;:RETURN 510 CLOSE101:CLOSE100 520 END 530 REM HELP-PRINT DOCUMENTATION 540 PRINT:PRINT"COMMANDS AVAILABLE ARE:" 550 PRINT"ERR -READ ERROR CHANNEL" 560 PRINT"HEX -CONVERT NUMBER TO HEX" 570 PRINT"DEC -CONVERT NUMBER TO DECIMAL" 580 PRINT"INIT -INITIALIZE DISK DRIVE" 590 PRINT"SCRATCH -DELETE DISK FILE" 600 PRINT"RENAME -RENAME A DISK FILE" 610 PRINT"HEADER -FORMAT A NEW DISK" 620 PRINT"DIR -PRINT THE DISK DIRECTORY" 630 PRINT"HELP -PRINT THIS HELP MESSAGE" 640 END